package main

import (
	"context"
	"encoding/json"
	MSG "feishup2pclient/msg"
	"feishup2pclient/utils"
	"fmt"
	//"time"
	//"github.com/wailsapp/wails/v2/pkg/runtime"
)

type SetData struct {
	ctx context.Context
}

func NewSetData() *SetData {
	return &SetData{}
}

func (a *SetData) startup(ctx context.Context) {
	a.ctx = ctx
}

// 设置aes密钥
func (a *SetData) Setaes(s string) string {
	if len(s) == 0 {
		fmt.Printf(`aesKey 不能为空`)
		MSG.SendMessage(`aesKey 不能为空`)
		return "noaesKey"
	}
	*aesKey = s
	return "ok"
}

// 设置tokenStr  服务端分配的P2P token
//
//export SettokenStr
func (a *SetData) SettokenStr(s string) string {
	if len(s) == 0 {
		fmt.Printf(`token不能为空`)
		MSG.SendMessage(`token不能为空`)
		return "token不能为空"
	}
	srcJson, err := utils.AesDecrypt(s)
	if err != nil {
		fmt.Printf("token解析失败:%v\n", err)
		MSG.SendMessage(fmt.Sprintf("token解析失败:%v\n", err))
		return "token解析失败"
	}
	// token = data.Token{}
	err = json.Unmarshal([]byte(srcJson), &token)
	if err != nil {
		fmt.Printf("token格式错误:%v\n", err)
		MSG.SendMessage(fmt.Sprintf("token格式错误:%v\n", err))
		return "token格式错误"
	}
	SrcJson = srcJson
	*tokenStr = s

	// 修改配置项的值
	// Cfg.Section("").Key("tokenStr").SetValue(*tokenStr)

	// // 保存修改后的配置文件
	// err = Cfg.SaveTo("config.ini")
	// if err != nil {
	// 	fmt.Printf("无法保存配置文件: %v", err)
	// 	MSG.SendMessage("无法保存配置文件: %v", err)
	// }
	// updateOrAddKey("tokenStr", *tokenStr)

	//str := s
	return "ok"
}

// 设置birdPath 配置文件目录
func (a *SetData) SetbirdPath(s string) string {
	if len(s) == 0 {
		fmt.Printf(`birdPath 不能为空`)
		MSG.SendMessage(`birdPath 不能为空`)
		return "nobirdPath"
	}
	*birdPath = s
	return "ok"
}

// 设置runBird "是否启动ospf Y启动，N不启动,默认不启动"
func (a *SetData) SetrunBird(s string) string {
	if len(s) == 0 {
		fmt.Printf(`runBird 不能为空`)
		MSG.SendMessage(`runBird 不能为空`)
		return "norunBird"
	}
	*runBird = s
	return "ok"
}
